function ModuleDialogCheck(doc, container, width, height, user, date, options) {
  this._doc = doc;
  this._container = container;
  this._width = width;
  this._height = height;
  this._user = user;
  this._date = date;
  this._options = options;
  
  this._object = (options && options.object) ? options.object : null;
  this._dfault = (options && options.dfault) ? options.dfault : '';
  
  this._createElements();
};

ModuleDialogCheck.prototype._createElements = function() {
  var unique = MiscUtils.unique(), _self = this;
  this._gui = new DialogCheck(this._doc, this._container, this._width, this._height, this._user, this._date, this._options)._gui;

  this._loadData();
};

ModuleDialogCheck.prototype._loadData = function() {
  
  this._designers = null;
  this._retrieveUsers();
};

ModuleDialogCheck.prototype._verifyData = function() {
  if (this._designers) {
    this._updateElements();
  }
};

ModuleDialogCheck.prototype._retrieveUsers = function() {
  var _self = this;
  new RequestUtils()._read('pz_user', null, 'd.type=\'' + Constant.USER_TYPE_DESIGNER + '\'', null, null, null, null, function(result, params) { _self._designers = result.data;
                                                                                                                                                 _self._verifyData.call(_self);
                                                                                                                                               }, null);
};

ModuleDialogCheck.prototype._updateElements = function() {
  var table, tr, td, radio, input, unique = MiscUtils.unique(), _self = this;
  
  DOMUtils.removeChildElements(this._gui.modify);
  DOMUtils.removeChildElements(this._gui.designer);
  
  table1 = document.createElement('table');
  table1.cellPadding = 0;
  table1.cellSpacing = 0;
  this._gui.modify.appendChild(table1);
  
  tr1 = table1.insertRow(-1);
  td1 = tr1.insertCell(-1);
  td1.style.padding = '0 1px';
  radio0 = DOMUtils.createInput(unique + '_ss', null, 'radio', 1, null);
  radio0.checked = (this._object.is_admin_retouched == radio0.value);
  
  if (radio0.checked) {
    this._object.is_admin_retouched = radio0.value;
  }
  radio0.onclick = function() { _self._object.is_admin_retouched = this.value;
                                _self._object.adminretouched_date = _self._date;
                             };
  td1.appendChild(radio0);
  
  td1 = tr1.insertCell(-1);
  td1.style.padding = '0 1px';
  td1.style.textAlign = 'left';
  td1.appendChild(document.createTextNode('修片'));
  
  td1 = tr1.insertCell(-1);
  td1.style.padding = '0 1px';
  radio1 = DOMUtils.createInput(unique + '_ss', null, 'radio', 0, null);
  radio1.checked = (this._object.is_admin_retouched == radio1.value);
  
  if (radio1.checked) {
    this._object.is_admin_retouched = radio1.value;
  }
  radio1.onclick = function() { _self._object.is_admin_retouched = this.value;
                                _self._object.adminretouched_date = 0;
                             };
  td1.appendChild(radio1);
  
  td1 = tr1.insertCell(-1);
  td1.style.padding = '0 1px';
  td1.style.textAlign = 'left';
  td1.appendChild(document.createTextNode('不修片'));
  
  this._gui.designer.options[this._gui.designer.options.length] = new Option('-');
  for (var i = 0, il = this._designers.length; i < il; i++) {
    var u = this._designers[i];
    option = new Option(u.name);
    option._u = u;
    this._gui.designer.options[this._gui.designer.options.length] = option;
    if (option._u.id == this._object.designer_id) {
      this._gui.designer.selectedIndex = this._gui.designer.options.length - 1;
    }
  }
  
  this._gui.designer.onchange = function() { _self._object.designer_id = (this.options[this.selectedIndex]._u) ? this.options[this.selectedIndex]._u.id : 0;
                                             _self._object.designer = (this.options[this.selectedIndex]._u) ? this.options[this.selectedIndex]._u.name : '';
                                           };
  
  
  this._gui.input.value = this._dfault;
  this._gui.input.onchange = function() { _self._object._text = this.value;
                                        };
};